package bd;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.xml.sax.SAXException;

import bd.excecoes.XMLException;

/**
 * Classe que le objetos XML do banco de dados.
 * 
 * @author Jonathan Brilhante
 * @author Jose Rafael
 * @author Nata Venancio
 * @author Renato Almeida
 * 
 * @version 1.0
 * 
 */

public class LerXML {
	private DocumentBuilderFactory dbf;
	private DocumentBuilder builder;
	private Document doc;
	private String path;

	/**
	 * Cria um leitor de XML a partir do caminho especificado
	 * 
	 * @param path
	 *            o caminho
	 */
	public LerXML(String path) {
		this.path = path;
	}

	/**
	 * Retorna o documento lido
	 * 
	 * @return o documento lido
	 * @throws XMLException
	 * @throws IOException
	 */
	public Document getDoc() throws XMLException, IOException {
		dbf = DocumentBuilderFactory.newInstance();
		try {
			builder = dbf.newDocumentBuilder();
		} catch (ParserConfigurationException erro) {
			throw new XMLException("Erro carregar o Arquivo!");
		}
		try {
			doc = builder.parse(path);
		} catch (SAXException e) {
			throw new XMLException("Problema em criar o docs!");
		}
		return doc;
	}

	/**
	 * 
	 * Retorna o doc criado;
	 * 
	 * @return Document
	 */
	public Document getDocumentLeitura() {
		return doc;
	}
}
